# assignment copy
df = df.set_index('month')
# or inplace
df.set_index('month', inplace=True)
# year sale month month year sale
# 0 2012 55 1 1 2012 55
# 1 2014 40 4 => 4 2014 40
# 2 2013 84 7 7 2013 84
# 3 2014 31 10 10 2014 31
class indexed_array:
def __getitem__(self, indices):
# convert a simple index x[y] to a tuple for consistency
if not isinstance(indices, tuple):
indices = tuple(indices)
# now handle the different dimensional cases
...